package practice;

public class Ji5 {

    public static void main(String[] args) {
        String s = "ba5ba5d";
//        String res = longestPalindrome1(s);
        System.out.println(s.toUpperCase());
    }

    /**
     * 时间复杂度：两层 for 循环 O(n²），for 循环里边判断是否为回文 O(n），所以时间复杂度为 O(n³）。
     * 空间复杂度：O(1），常数个变量。
     * @param s
     * @return
     */
    public static String longestPalindrome1(String s) {
        String ans = "";
        int max = 0;
        int len = s.length();
        for(int i=0;i<len;i++){
            for(int j=i+1;j<=len;j++){
                String test = s.substring(i,j);
                if(isPalindromic(test)&&test.length()>max){
                    ans = s.substring(i,j);
                    max = Math.max(max,ans.length());
                }
            }
        }
        return ans;
    }

    public static boolean isPalindromic(String s) {
        int len = s.length();
        for(int i=0;i<=len/2;i++){
            if(s.charAt(i)!=s.charAt(len-i-1)){
                return false;
            }
        }
        return true;
    }
}
